package net.oschina.renyong.query.generator.util;

import java.io.File;

import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.config.ConstVal;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

/**
 * 查询代码生成的工具类
 * @author Timothy
 */
public class QuerySqlUtil {

	/**
	 * 根据命名策略处理下划线格式的名字
	 * @param name 待处理的名字
	 * @param strategy 命名策略
	 * @return 根据策略返回处理后的名称
	 */
	public static String processUnderlineName(String name, NamingStrategy strategy) {
		if (strategy == NamingStrategy.underline_to_camel) {
			// 下划线转驼峰
			return NamingStrategy.underlineToCamel(name);
		} else {
			// 不处理
			return name;
		}
	}

	/**
	 * <p>
	 * 连接父子包名
	 * </p>
	 * @param parent 父包名
	 * @param subPackage 子包名
	 * @return 连接后的包名
	 */
	public static String joinPackage(String parent, String subPackage) {
		if (StringUtils.isEmpty(parent)) {
			return subPackage;
		}
		return parent + "." + subPackage;
	}

	/**
	 * <p>
	 * 连接路径字符串
	 * </p>
	 * @param parentDir 路径常量字符串
	 * @param packageName 包名
	 * @return 连接后的路径
	 */
	public static String joinPath(String parentDir, String packageName) {
		if (StringUtils.isEmpty(parentDir)) {
			parentDir = System.getProperty(ConstVal.JAVA_TMPDIR);
		}
		if (!StringUtils.endsWith(parentDir, File.separator)) {
			parentDir += File.separator;
		}
		packageName = packageName.replaceAll("\\.", "\\" + File.separator);
		return parentDir + packageName;
	}

}
